/*************************************************
*      Filename: distance_twomesh.h
*        Coding: utf-8
*        Author: Futuan Li ,Zheng Li
*         Email: lifutuan@galasports.net
*      HomePage: http://www.galasports.net
*  Copyright(C): InnoReal Technology Co.,Ltd.
*       Version: 0.0.1
*    CreateDate: 2018-04-24 15:46:41
*    LastChange: 2018-04-25 14:15:00
*          Desc: 
*       History: 
*************************************************/


#ifndef DISTWOMESH_H_
#define DISTWOMESH_H_

#include <igl/cotmatrix.h>
#include <igl/hausdorff.h>
#include <Eigen/Dense>
//#include <Eigen/Sparse>
#include <iostream>
#include <fstream>
#include <cmath>
#include "input_data.h"
#include <iostream>
#include <fstream>
#include "innoreal/utils/innoreal_threadpool.hpp"
using namespace Eigen;


class DisTwoMesh
{
	public:
  DisTwoMesh();
  ~DisTwoMesh();
		//原生实现Hausdorff距离
		double Hausdorff_Simple(InputData *data);
        double Hausdorff_Simple_par(InputData *data);
        double Hausdorff_Simple_par1(InputData *data);
        double Hausdorff_Simple_par2(InputData *data);


  //k-D树计算Hausdorff距离
		double Hausdorff_KD(InputData *data);
		//最慢,原因应该是矩阵使用不当，希望有高手改一下-^-
		double Hausdorff_Eigen(InputData *data);
		//futuan写的里那个函数
        double Hausdorff_Average(InputData *data);
        double Hausdorff_igl(InputData *data);
        innoreal::InnoRealThreadpool *threadpool_i;
        innoreal::InnoRealThreadpool *threadpool_j;

};




#endif
